import Vue from "vue";
import Vuex from "vuex";
import {UPDATE_ADMIN, UPDATE_BASE, UPDATE_BASEUSER, UPDATE_IDENTITY,} from "./mutations-types";
import {UPDATE_ADMINUSER, UPDATE_BASE_BASEID, UPDATE_BASE_USER, UPDATE_IDENTITY_AC,} from "./actions-types";
Vue.use(Vuex);


export default new Vuex.Store({
    state:{
        //基地对象
        base:{
        },
        //用户对象
        user:{
        },
        //管理员
        admin:{

        },
        //类型
        identity:""
    },
    mutations: {
        //更新state的方法定义在里面
        [UPDATE_BASE](state,base){
            //修改基地对象
            state.base = base;
        },
        [UPDATE_BASEUSER](state,user){
            state.user = user;
        },
        [UPDATE_ADMIN](state,admin){
            state.admin = admin
        },
        [UPDATE_IDENTITY](state,identity){
            state.identity = identity;
        }
    },
    actions: {
        //用于在vuex中执行一些异步操作 context上下文
        [UPDATE_BASE_BASEID](context,base){
            //使用commit方法调用 mutations中的方法
            context.commit(UPDATE_BASE,base);
        },
        //更新user对象
        [UPDATE_BASE_USER](context,user){
            context.commit(UPDATE_BASEUSER,user)
        },
        //更新admin对象
        [UPDATE_ADMINUSER](context,admin){
            context.commit(UPDATE_ADMIN,admin)
        },
        //更新类型
        [UPDATE_IDENTITY_AC](context,identity){
            context.commit(UPDATE_IDENTITY,identity);
        }

    },
    modules: {},
    getters:{
        //对state里面的数据进行一下变形用的，相当于组件中的计算属性
    },
});
